Python 绿色版及其依赖包的离线安装
本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除。
原文地址: 4_ Python 绿色版及其依赖包的离线安装 — 尤金的一己之见 alpha 文档
Python 绿色版及其依赖包的离线安装
前情提要:由于公司的开发机器属于内网机,无法联通外网,且又没有类似于 Nexus 仓库作为内网穿透的工具。以下所有操作都是基于 Window 10 的环境。
Python 绿色版的制作
制作流程大致分为:Python 和 pip 包的下载 -> 将 pip 安装入 Python 包中 -> 加入 pip 安装路径修复工具
-
Python 离线版的下载
- 下载地址:
https://www.python.org/ftp/python/3.7.9/
- 下载内容:
python-3.7.9-embed-amd64.zip
- 下载地址:
-
PiP 离线包的安装
- 下载地址:
https://pip.pypa.io/en/stable/installing/
- 下载内容:在 Installing with get-pip.py 条目下的 get-pip.py 文件
- 然后在 Python 离线版解压包下与 python.exe 同级目录下运行下方命令,会生成两个文件夹。
.\python.exe .\get-pip.py
- 下载地址:
-
记事本打开
python37._pth
,去除import site
的注释;此时,我们通过运行.\Scripts\pip -V
版本命令来确认是否正常。python37.zip . # Uncomment to run site.main() automatically import site
将 Python 绿色版的包放在其他机器上运行时出现异常
Fatal error in launcher: Unable to create process using '"D:\MySoftWare\MyPython\python-3.7.9-embed-amd64\python.exe" "C:\Users\qaz22\Downloads\MyPython\MyPython\python-3.7.9-embed-amd64\Scripts\pip.exe" -V': ???????????
这是因为 pip.exe 用绝对路径来找 python,现在换位置了,路径就失效了,通过重新安装可以很容易修复这个错误
需要注意,要找到与安装的 pip 包版本相同的修复文件。
下载地址:https://pypi.tuna.tsinghua.edu.cn/simple/pip/
下载内容:pip-23.2.1-py3-none-any.whl
注意后缀,是 wheel 的文件
将 pip-23.2.1-py3-none-any.whl 文件放在 Python 根目录下,并运行以下命令:
.\python -m pip install -U pip-23.2.1-py3-none-any.whl --force-reinstall
下载 Python 离线依赖包,并在实际的开发机器中安装
为什么要在实际开发机器中安装,因为同 pip 的安装一样,如果实现在 Python 绿色版中安装开发依赖,那么也会由于其绝对路径的不同导致无法运行依赖程序,pip 能通过专用的程序进行离线重安装,但是其他的就不一定了,而且从时间成本上来说并不划算。
pip download -d your_offline_packages sphinx
然后将下载好的依赖重新在新机器上安装
.\python -m pip install --no-index --find-links=H:\your_offline_packages sphinx
当然,我们会发现,如果我们要初始化一个 Python 环境的时候,一个个依赖地下载和安装费事,可以通过下面的方法来下载和安装:
-
首先,在项目中分析出所有依赖的库 :
pip freeze > requirements.txt # 该方法仅可以使用在虚拟环境中,会将 python 解释器下的所有包都导出
-
将所有包下载到 offLine 这个目录中
pip download -r requirements.txt -d offLine
-
将文件打包后放到离线服务器上,并进行解压缩
pip install --no-index --find-links=d:\python3.6\temp -r requirements.txt
一键脚本
踩坑记录
执行绿化脚本后,在新的终端输入python命令,弹出windows商店中的python安装页面?
在系统环境变量中,将C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps
删除或移动到末尾即可。